package com.cty.pojo;



import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.cache.spi.access.CachedDomainDataAccess;

import java.util.List;

@Entity
@Table(name = "t_user")
@Setter
@Getter
public class User {
    /*
    * 主键策略
    * TABLE：hibernate 主键的生成策略 生成一个表专门维护主键
    * SEQUENCE AUTO 生成一个表专门维护主键
    * UUID 生成一个UUID维护主键 主要为String类型
    * IDENTITY:主键为自增长类型
    * */

    @Id // 表明这个是主键
    @GeneratedValue(strategy = GenerationType.IDENTITY) //主键策略:自增长
    private Long id;
    // 指定表中的名字 长度255 不可以为空
    @Column(name = "user_name",length = 255,nullable = false)
    private String userName;

    private String password;

    // 一对多只需要将这个注解改为多个就行
    @OneToMany(targetEntity = Address.class,cascade = CascadeType.ALL,fetch = FetchType.EAGER)
    @JoinColumn(name = "user_id",foreignKey = @ForeignKey(name = "none",value = ConstraintMode.NO_CONSTRAINT))
    private List<Address> addresses;
}
